#ifndef __ASM_ELX_SYNC_H
#define __ASM_ELX_SYNC_H
#include <asm/exception.h>

typedef long (*handle_ec)(struct exception_spot *s, u64 fault_addr, u32 esr);
typedef long (*syscall_ec)(struct exception_spot *s, long nr);
long handle_ec_unknown(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_fpsimd_acc(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_svc64(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_sys64(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_sve_acc(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_inst_abort_low(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_inst_abort_cur(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_pc_align(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_data_abort_low(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_data_abort_cur(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_sp_align(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_fpsimd_exc64(struct exception_spot *s, u64 fault_addr, u32 esr);
long handle_breakpt_low(struct exception_spot *s, u64 fault_addr, u32 esr);
long sys_test0(struct exception_spot *s, long nr);
long sys_test1(struct exception_spot *s, long nr);
long sys_test2(struct exception_spot *s, long nr);
long sys_test3(struct exception_spot *s, long nr);
long handle_elx_sync(struct exception_spot *s, unsigned long level);

#endif
